//耗时30分钟
//
//
//
//
//
//
//

var cap = 10

var location =  []

let trips =[[10,1,2],[1,2,5]]
let trips2 =[[10,1,2],[1,2,5],[12,3,4]]
    
//console.info(check(trips))
//console.info(check(trips2))

function check(trips){

	for (let i = 0;i<trips.length;i++){
		let trip = trips[i]
		let passen = trip[0]
		let start = trip[1]
		let end = trip[2]
		merge(start,passen)
		merge(end,passen*-1)
	}
	let sum = 0

//	console.info(JSON.stringify(location))
	for (let j = 0;j<location.length;j++){
		sum += location[j]
		if(sum > cap){
			return false
		}
	}
	return true

}

function merge(loc,num){
//	console.info(loc,num,location.length)
     if(loc>=location.length){
     	while (location.length<loc+1) {
//		console.info(loc,num)
		location.push(0)
	}
     }

	location[loc]+= num
}


//假设你是一位顺风车司机，车上最初有 capacity 个空座位可以用来载客。由于道路的限制，车 只能 向一个方向行驶（也就是说，不允许掉头或改变方向，你可以将其想象为一个向量）。

//这儿有一份乘客行程计划表 trips[][]，其中 trips[i] = [num_passengers, start_location, end_location] 包含了第 i 组乘客的行程信息：

//必须接送的乘客数量；
//乘客的上车地点；
//以及乘客的下车地点。
//这些给出的地点位置是从你的 初始 出发位置向前行驶到这些地点所需的距离（它们一定在你的行驶方向上）。

//请你根据给出的行程计划表和车子的座位数，来判断你的车是否可以顺利完成接送所有乘客的任务（当且仅当你可以在所有给定的行程中接送所有乘客时，返回 true，否则请返回 false）。



